﻿// <copyright file="ContainerFlags.cs" company="Sinclair Community College">
// Copyright 2010 Sinclair Community College
// </copyright>
// <originalAuthor>Patrick S. Seymour (patrick.seymour@gmail.com)</originalAuthor>

namespace SinclairCC.AppV
{
    /// <summary>
    /// Indicates additional information about the given container.
    /// </summary>
    [System.Flags]
    public enum ContainerFlags : uint
    {
        /// <summary>
        /// None of the other flags defined here are applicable.
        /// </summary>
        NOT_APPLICABLE = 0x00000000,

        /// <summary>
        /// The file data has been downloaded from the server and verified.
        /// </summary>
        FILE_VERIFIED = 0x00000001,

        /// <summary>
        /// Used to lock the container while in use.
        /// </summary>
        LOCKED = 0x00000002,

        /// <summary>
        /// The package launch data has been deleted; the App-V Client needs to steam the data again
        /// from the Server.
        /// </summary>
        NOTIFY_LAUNCH_DATA_REMOVED = 0x00000008,

        /// <summary>
        /// This flag value is unused.
        /// </summary>
        PACKAGE_FILE_MODIFIED = 0x00000010,

        /// <summary>
        /// Package file.
        /// </summary>
        PACKAGE_FILE = 0x00000020,

        /// <summary>
        /// Allocation map has been updated and needs to be flushed in the disk.
        /// </summary>
        ALLOC_MASK_DIRTY = 0x00000040,

        /// <summary>
        /// The container is updated and needs to be flushed.
        /// </summary>
        DATA_DIRTY = 0x00000080,

        /// <summary>
        /// The corresponding security descriptor (of the FSD Cache) has been updated and is now
        /// in the package volume file.
        /// </summary>
        MODIFIED_ACL_PERSISTED = 0x00001000
    }
}
